#ifndef RCSYMBIANQTPROJECTGENERATOR_H
#define RCSYMBIANQTPROJECTGENERATOR_H

#include "symbian/symbianqtprojectgenerator.h"

class RcBuildTask;
class RcSession;

class RcSymbianQtProjectGenerator : public SymbianQtProjectGenerator
{

    Q_OBJECT

public:
    //
    // lifetime management
    //
    RcSymbianQtProjectGenerator(const QString       & platformId,
                                GeneratorOutputView & outputView,
                                QObject             * parent = NULL);
    virtual ~RcSymbianQtProjectGenerator();

    //
    // public operators
    //
public:
    virtual IStatusUpdater * createStatusUpdater(QObject * parent = NULL);
    virtual void build(const QString &widgetFile,
                       RcSession     & rcSession);
    virtual void rebuild(RcSession     & rcSession);
    virtual QString getStatusText() const;
    virtual QWidget * createSettingsWidget(const QString & widgetFile,
                                           QWidget       * parent = NULL) const;
    virtual void saveSettings(QWidget * settingsWidget) const;
    virtual QStringList errorsForTarget(GeneratorTarget generatorTarget) const;

    /* OBS
protected:
    virtual SymbianProcessRunner * createProcessRunner();
    */

protected:
    virtual void startBuild();

private slots:
    void zippingSlot();
    void uploadingAndWaitingSlot();
    void downloadingSlot();
    void buildCompletedSlot(bool    success,
                            QString downloadedFile);

    void finishedSlot(int exitCode);


private:
    QString              m_wccParams;
    RcSession          * m_rcSession;
    RcBuildTask        * m_rcBuildTask;
    QString              m_appName;

    // For the remote compilation, we force full-s60-sdk in the
    // global settings temporily, as the (local) symbian build
    // uses that value to prepare the sources during generation.
    // But later, the setting should switch back to old value,
    // thus we have to store it here.
    bool                 m_oldFullS60SDK;
};

#endif // RCSYMBIANQTPROJECTGENERATOR_H
